/**@file
 * @brief 测试报告对象声明
 * @author 朱项男<libxiangnan@gmail.com>
 * @date 2011/11/25
 * @version 0.0.1
 *
 * */
#ifndef REPORT_H_
#define REPORT_H_

#include <ctime>

using namespace std;

namespace dat {

/**@class Report report.h report.h
 * @brief declaration of class Report
 * @author <libxiangnan@gmail.com>
 * */
class Report {
private:
	std::time_t startTime;	/**< startTime of test*/
	std::time_t endTime;	/**< endTime of test*/
	std::size_t total;		/**< number of cases*/
	std::size_t pass;		/**< number of passed cases*/
	std::size_t failed;		/**< number of failed cases*/
	std::size_t error;		/**< number of cases error run*/
	std::size_t notrun;		/**< number of cases not run*/
	std::size_t disabled;	/**< number of cases disabled*/
public:
	//! @brief constructor without parameters
	Report();

	//! @brief destructor
	~Report();

	//! @brief startTime Setter
	void setStartTime(std::time_t lcStartTime);

	//! @brief startTime Getter
	std::time_t getStartTime();

	//! @brief total Setter
	void setTotal(std::size_t lcTotal);

	//! @brief total Getter
	std::size_t getTotal();

	//! @brief pass Setter
	void setPass(std::size_t lcPass);

	//! @brief pass Getter
	std::size_t getPass();

	//! @brief failed Setter
	void setFailed(std::size_t lcFailed);

	//! @brief failed Getter
	std::size_t getFailed();

	//! @brief error Setter
	void setError(std::size_t lcError);

	//! @brief error Getter
	std::size_t getError();

	//! @brief notrun Setter
	void setNotrun(std::size_t lcNotrun);

	//! @brief notrun Getter
	std::size_t getNotrun();

	//! @brief diabled Setter
	void setDisabled(std::size_t lcDisabled);

	//! @brief diabled Getter
	std::size_t getDisabled();
};

} /* namespace dat */
#endif /* REPORT_H_ */
